package main

import "fmt"

// 切片可以用内建函数 make 来创建，这也是你创建动态数组的方式。
// make 函数会分配一个元素为零值的数组并返回一个引用了它的切片：
// a := make([]int, 5)  // len(a)=5
// 要指定它的容量，需向 make 传入第三个参数：
// b := make([]int, 0, 5) // len(b)=0, cap(b)=5
// b = b[:cap(b)] // len(b)=5, cap(b)=5
// b = b[1:]      // len(b)=4, cap(b)=4
func main() {
	a := make([]int, 5)
	printSilce2("a", a)

	b := make([]int, 0, 5)
	printSilce2("b", b)

	c := b[:2]
	printSilce2("c", c)

	d := c[2:5]
	printSilce2("d", d)
}

func printSilce2(s string, ints []int) {
	fmt.Printf("%s len=%d cap=%d %v \n", s, len(ints), cap(ints), ints)
}
